Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use vendored fluxc and login #13304

Merged
merged 28 commits into from
Feb 3, 2025
Merged

Use vendored fluxc and login #13304

merged 28 commits into from
Feb 3, 2025

Conversation

wzieba
Copy link
Contributor

@wzieba wzieba commented Jan 14, 2025

Description

This PR introduces necessary changes to make the assembleWasabiDebug pass when using vendored fluxc and login modules.

Among others, this PR:

  • replaces coordinates of fluxc and login to point to local modules
  • updates dependencies and adds missing ones for vendored modules
  • unifies JVM version
  • adds necessary dependencies
  • fixes minor code issues, forced by Kotlin update on vendored codebase

The current state of PR is based on code from following commits

Extraction from FluxC and Login

To perform extractions/filtering, I've used the following script.

Caution

DO NOT RUN the script, it's only for preview and understanding what actions has been performed via git filter-repo

script
#!/bin/bash

# Prepare FluxC

cd ~

rm -rf WordPress-FluxC-Android

git clone [email protected]:wordpress-mobile/WordPress-FluxC-Android.git

cd WordPress-FluxC-Android

git checkout 3061745

git filter-repo \
--path-rename example/build.gradle:fluxc-tests/build.gradle \
--path-rename example/src/test:fluxc-tests/src/test \
--force

git filter-repo \
--path fluxc-annotations \
--path fluxc-processor \
--path fluxc \
--path plugins/woocommerce \
--path fluxc-tests \
--force

git filter-repo \
--path-rename fluxc-annotations:libs/fluxc-annotations \
--path-rename fluxc-processor:libs/fluxc-processor \
--path-rename plugins/woocommerce:libs/fluxc-plugin \
--path-rename fluxc:libs/fluxc \
--path-rename fluxc-tests:libs/fluxc-tests

git tag | xargs git tag -d

git checkout -b filtered

cd ~/woocommerce-android

git checkout trunk

git pull

git branch -D fluxc_with_history

git checkout -b fluxc_with_history

git pull fluxcfiltered filtered --allow-unrelated-histories --no-rebase

git push --set-upstream origin fluxc_with_history -f

## Prepare Login

cd ~

rm -rf WordPress-Login-Flow-Android

git clone [email protected]:wordpress-mobile/WordPress-Login-Flow-Android.git

cd WordPress-Login-Flow-Android

git checkout 72b7552 

git filter-repo --path WordPressLoginFlow --force

git filter-repo --path-rename WordPressLoginFlow:libs/login --force

git tag | xargs git tag -d

git checkout -b filtered

cd ~/woocommerce-android

git checkout fluxc_with_history

git branch -D login_with_history

git checkout -b login_with_history

git pull loginflowfilter filtered --allow-unrelated-histories --no-rebase

git push --set-upstream origin login_with_history -f

## Update adjustment branch

git checkout login_with_history

git branch -D adjust_fluxc_login_vendor

git checkout -b adjust_fluxc_login_vendor

# Now cherry pick adjustments commits manually

Testing information

The whole app needs to be tested: nothing in particular.

The tests that have been performed

Images/gif

  • I have considered if this change warrants release notes and have added them to RELEASE-NOTES.txt if necessary. Use the "[Internal]" label for non-user-facing changes.

Reviewer (or Author, in the case of optional code reviews):

Please make sure these conditions are met before approving the PR, or request changes if the PR needs improvement:

  • The PR is small and has a clear, single focus, or a valid explanation is provided in the description. If needed, please request to split it into smaller PRs.
  • Ensure Adequate Unit Test Coverage: The changes are reasonably covered by unit tests or an explanation is provided in the PR description.
  • Manual Testing: The author listed all the tests they ran, including smoke tests when needed (e.g., for refactorings). The reviewer confirmed that the PR works as expected on big (tablet) and small (phone) in case of UI changes, and no regressions are added.

@dangermattic
Copy link
Collaborator

dangermattic commented Jan 14, 2025

1 Warning
⚠️ This PR is larger than 300 lines of changes. Please consider splitting it into smaller PRs for easier and faster reviews.

Generated by 🚫 Danger

@wpmobilebot
Copy link
Collaborator

wpmobilebot commented Jan 14, 2025

Project dependencies changes

The following changes in project dependencies were detected (configuration vanillaReleaseRuntimeClasspath):

list
Removed Dependencies
org.wordpress.fluxc.plugins:woocommerce:2.103.0
org.wordpress.fluxc:fluxc-annotations:2.103.0
org.wordpress:fluxc:2.103.0
org.wordpress:login:1.21.0
tree
-+--- androidx.appcompat:appcompat:1.4.2 -> 1.6.1 (*)
++--- androidx.appcompat:appcompat:1.6.1 (*)
-+--- org.wordpress:fluxc:2.103.0
-|    +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.1.10
-|    |    +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 (*)
-|    |    \--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.1.10
-|    |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 (*)
-|    +--- androidx.exifinterface:exifinterface:1.0.0 -> 1.3.6
-|    |    \--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*)
-|    +--- androidx.security:security-crypto:1.0.0 -> 1.1.0-alpha03
-|    |    +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*)
-|    |    +--- com.google.crypto.tink:tink-android:1.5.0
-|    |    \--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
-|    +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.0
-|    |    +--- com.squareup.okhttp3:okhttp:4.9.0 -> 4.12.0 (*)
-|    |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.10 -> 1.9.10 (*)
-|    +--- com.google.code.gson:gson:2.8.5 -> 2.10.1
-|    +--- org.apache.commons:commons-text:1.10.0 (*)
-|    +--- androidx.room:room-runtime:2.6.1 (*)
-|    +--- androidx.room:room-ktx:2.6.1
-|    |    +--- androidx.room:room-common:2.6.1 (*)
-|    |    +--- androidx.room:room-runtime:2.6.1 (*)
-|    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.10 (*)
-|    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1 -> 1.8.1 (*)
-|    |    +--- androidx.room:room-common:2.6.1 (c)
-|    |    \--- androidx.room:room-runtime:2.6.1 (c)
-|    +--- com.google.dagger:dagger:2.51.1 -> 2.55
-|    |    +--- jakarta.inject:jakarta.inject-api:2.0.1
-|    |    +--- javax.inject:javax.inject:1
-|    |    \--- org.jspecify:jspecify:1.0.0
-|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 (*)
-|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 (*)
-|    +--- org.wordpress:wellsql:2.0.0
-|    |    +--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*)
-|    |    \--- org.wordpress.wellsql:wellsql-annotations:2.0.0
-|    +--- org.wordpress.fluxc:fluxc-annotations:2.103.0
-|    +--- org.greenrobot:eventbus:3.3.1 (*)
-|    +--- org.greenrobot:eventbus-java:3.3.1
-|    +--- com.squareup.okhttp3:okhttp:4.9.0 -> 4.12.0 (*)
-|    +--- com.android.volley:volley:1.1.1 -> 1.2.0
-|    +--- androidx.paging:paging-runtime:2.1.2
-|    |    +--- androidx.paging:paging-common:2.1.2
-|    |    |    +--- androidx.annotation:annotation:1.0.0 -> 1.8.1 (*)
-|    |    |    \--- androidx.arch.core:core-common:2.0.0 -> 2.2.0 (*)
-|    |    +--- androidx.arch.core:core-runtime:2.0.0 -> 2.2.0 (*)
-|    |    +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.8.7 (*)
-|    |    +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.8.7 (*)
-|    |    \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.3.2 (*)
-|    +--- com.goterl:lazysodium-android:5.0.2
-|    +--- net.java.dev.jna:jna:5.5.0
-|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.1.10 (*)
-+--- org.wordpress.fluxc.plugins:woocommerce:2.103.0
-|    +--- org.wordpress:fluxc:2.103.0 (*)
-|    +--- com.google.code.gson:gson:2.8.5 -> 2.10.1
-|    +--- com.google.dagger:dagger:2.51.1 -> 2.55 (*)
-|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 (*)
-|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 (*)
-|    +--- androidx.room:room-runtime:2.6.1 (*)
-|    +--- org.wordpress:wellsql:2.0.0 (*)
-|    +--- org.wordpress.fluxc:fluxc-annotations:2.103.0
-|    +--- androidx.room:room-ktx:2.6.1 (*)
-|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.1.10 (*)
-\--- org.wordpress:login:1.21.0
-     +--- com.gravatar:gravatar:0.2.0
-     |    +--- com.squareup.okhttp3:okhttp:4.12.0 (*)
-     |    +--- com.squareup.retrofit2:retrofit:2.9.0
-     |    |    \--- com.squareup.okhttp3:okhttp:3.14.9 -> 4.12.0 (*)
-     |    +--- com.squareup.retrofit2:converter-gson:2.9.0
-     |    |    +--- com.squareup.retrofit2:retrofit:2.9.0 (*)
-     |    |    \--- com.google.code.gson:gson:2.8.5 -> 2.10.1
-     |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.8.1 (*)
-     |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 2.1.10 (*)
-     +--- androidx.appcompat:appcompat:1.6.1 (*)
-     +--- androidx.constraintlayout:constraintlayout:2.0.4 -> 2.1.4 (*)
-     +--- com.google.android.material:material:1.2.1 -> 1.12.0 (*)
-     +--- androidx.core:core:1.12.0 -> 1.13.1 (*)
-     +--- com.github.bumptech.glide:glide:4.12.0 -> 4.16.0
-     |    +--- com.github.bumptech.glide:gifdecoder:4.16.0
-     |    |    \--- androidx.annotation:annotation:1.5.0 -> 1.8.1 (*)
-     |    +--- com.github.bumptech.glide:disklrucache:4.16.0
-     |    +--- com.github.bumptech.glide:annotations:4.16.0
-     |    +--- androidx.fragment:fragment:1.3.6 -> 1.8.5 (*)
-     |    +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 (*)
-     |    +--- androidx.exifinterface:exifinterface:1.3.6 (*)
-     |    \--- androidx.tracing:tracing:1.0.0 (*)
-     +--- androidx.credentials:credentials:1.2.0
-     |    +--- androidx.annotation:annotation:1.5.0 -> 1.8.1 (*)
-     |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.10 (*)
-     |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.8.1 (*)
-     |    \--- androidx.credentials:credentials-play-services-auth:1.2.0 (c)
-     +--- androidx.credentials:credentials-play-services-auth:1.2.0
-     |    +--- androidx.credentials:credentials:1.2.0 (*)
-     |    +--- com.google.android.gms:play-services-auth:20.7.0 (*)
-     |    +--- com.google.android.gms:play-services-fido:20.1.0 (*)
-     |    +--- com.google.android.libraries.identity.googleid:googleid:1.1.0
-     |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.0 -> 2.1.10 (*)
-     |    |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.10 (*)
-     |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.10 (*)
-     |    \--- androidx.credentials:credentials:1.2.0 (c)
-     +--- com.google.dagger:dagger:2.47 -> 2.55 (*)
-     +--- com.google.dagger:dagger-android-support:2.47 -> 2.55
-     |    +--- com.google.dagger:dagger:2.55 (*)
-     |    +--- com.google.dagger:dagger-android:2.55
-     |    |    +--- com.google.dagger:dagger:2.55 (*)
-     |    |    +--- com.google.dagger:dagger-lint-aar:2.55
-     |    |    +--- androidx.annotation:annotation:1.3.0 -> 1.8.1 (*)
-     |    |    \--- javax.inject:javax.inject:1
-     |    +--- com.google.dagger:dagger-lint-aar:2.55
-     |    +--- androidx.activity:activity:1.5.1 -> 1.8.2 (*)
-     |    +--- androidx.annotation:annotation:1.3.0 -> 1.8.1 (*)
-     |    +--- androidx.appcompat:appcompat:1.3.1 -> 1.6.1 (*)
-     |    +--- androidx.fragment:fragment:1.5.1 -> 1.8.5 (*)
-     |    +--- androidx.lifecycle:lifecycle-common:2.5.1 -> 2.8.7 (*)
-     |    +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 -> 2.8.7 (*)
-     |    +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 -> 2.8.7 (*)
-     |    \--- javax.inject:javax.inject:1
-     +--- com.google.android.gms:play-services-auth:18.1.0 -> 20.7.0 (*)
-     \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.1.10 (*)
++--- project :libs:fluxc
+|    +--- org.wordpress:wellsql:2.0.0
+|    |    +--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*)
+|    |    \--- org.wordpress.wellsql:wellsql-annotations:2.0.0
+|    +--- project :libs:fluxc-annotations
+|    +--- org.greenrobot:eventbus:3.3.1 (*)
+|    +--- org.greenrobot:eventbus-java:3.3.1
+|    +--- com.squareup.okhttp3:okhttp:4.9.0 -> 4.12.0 (*)
+|    +--- com.android.volley:volley:1.1.1 -> 1.2.0
+|    +--- androidx.paging:paging-runtime:2.1.2
+|    |    +--- androidx.paging:paging-common:2.1.2
+|    |    |    +--- androidx.annotation:annotation:1.0.0 -> 1.8.1 (*)
+|    |    |    \--- androidx.arch.core:core-common:2.0.0 -> 2.2.0 (*)
+|    |    +--- androidx.arch.core:core-runtime:2.0.0 -> 2.2.0 (*)
+|    |    +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.8.7 (*)
+|    |    +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.8.7 (*)
+|    |    \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.3.2 (*)
+|    +--- com.goterl:lazysodium-android:5.0.2
+|    +--- net.java.dev.jna:jna:5.5.0
+|    +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 (*)
+|    +--- androidx.exifinterface:exifinterface:1.0.0 -> 1.3.6
+|    |    \--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*)
+|    +--- androidx.security:security-crypto:1.0.0 -> 1.1.0-alpha03
+|    |    +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*)
+|    |    +--- com.google.crypto.tink:tink-android:1.5.0
+|    |    \--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+|    +--- org.wordpress:utils:3.15.0 (*)
+|    +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.0
+|    |    +--- com.squareup.okhttp3:okhttp:4.9.0 -> 4.12.0 (*)
+|    |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.10 -> 1.9.10 (*)
+|    +--- com.google.code.gson:gson:2.10.1
+|    +--- org.apache.commons:commons-text:1.10.0 (*)
+|    +--- androidx.room:room-runtime:2.6.1 (*)
+|    +--- androidx.room:room-ktx:2.6.1
+|    |    +--- androidx.room:room-common:2.6.1 (*)
+|    |    +--- androidx.room:room-runtime:2.6.1 (*)
+|    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.10 (*)
+|    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1 -> 1.8.1 (*)
+|    |    +--- androidx.room:room-common:2.6.1 (c)
+|    |    \--- androidx.room:room-runtime:2.6.1 (c)
+|    +--- com.google.dagger:dagger:2.55
+|    |    +--- jakarta.inject:jakarta.inject-api:2.0.1
+|    |    +--- javax.inject:javax.inject:1
+|    |    \--- org.jspecify:jspecify:1.0.0
+|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 (*)
+|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 (*)
+|    \--- org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.10
+|         +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 (*)
+|         \--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.1.10
+|              \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 (*)
++--- project :libs:fluxc-plugin
+|    +--- org.wordpress:wellsql:2.0.0 (*)
+|    +--- project :libs:fluxc-annotations
+|    +--- androidx.room:room-ktx:2.6.1 (*)
+|    +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 (*)
+|    +--- project :libs:fluxc (*)
+|    +--- org.wordpress:utils:3.15.0 (*)
+|    +--- com.google.code.gson:gson:2.10.1
+|    +--- com.google.dagger:dagger:2.55 (*)
+|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 (*)
+|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 (*)
+|    \--- androidx.room:room-runtime:2.6.1 (*)
+\--- project :libs:login
+     +--- com.google.android.gms:play-services-auth:20.2.0 -> 20.7.0 (*)
+     +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 (*)
+     +--- org.wordpress:utils:3.15.0 (*)
+     +--- com.gravatar:gravatar:0.2.0
+     |    +--- com.squareup.okhttp3:okhttp:4.12.0 (*)
+     |    +--- com.squareup.retrofit2:retrofit:2.9.0
+     |    |    \--- com.squareup.okhttp3:okhttp:3.14.9 -> 4.12.0 (*)
+     |    +--- com.squareup.retrofit2:converter-gson:2.9.0
+     |    |    +--- com.squareup.retrofit2:retrofit:2.9.0 (*)
+     |    |    \--- com.google.code.gson:gson:2.8.5 -> 2.10.1
+     |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.8.1 (*)
+     |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 2.1.10 (*)
+     +--- androidx.appcompat:appcompat:1.6.1 (*)
+     +--- androidx.constraintlayout:constraintlayout:2.1.4 (*)
+     +--- com.google.android.material:material:1.12.0 (*)
+     +--- androidx.core:core-ktx:1.13.1 (*)
+     +--- project :libs:fluxc (*)
+     +--- com.github.bumptech.glide:glide:4.16.0
+     |    +--- com.github.bumptech.glide:gifdecoder:4.16.0
+     |    |    \--- androidx.annotation:annotation:1.5.0 -> 1.8.1 (*)
+     |    +--- com.github.bumptech.glide:disklrucache:4.16.0
+     |    +--- com.github.bumptech.glide:annotations:4.16.0
+     |    +--- androidx.fragment:fragment:1.3.6 -> 1.8.5 (*)
+     |    +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 (*)
+     |    +--- androidx.exifinterface:exifinterface:1.3.6 (*)
+     |    \--- androidx.tracing:tracing:1.0.0 (*)
+     +--- androidx.credentials:credentials:1.2.0
+     |    +--- androidx.annotation:annotation:1.5.0 -> 1.8.1 (*)
+     |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.10 (*)
+     |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.8.1 (*)
+     |    \--- androidx.credentials:credentials-play-services-auth:1.2.0 (c)
+     +--- androidx.credentials:credentials-play-services-auth:1.2.0
+     |    +--- androidx.credentials:credentials:1.2.0 (*)
+     |    +--- com.google.android.gms:play-services-auth:20.7.0 (*)
+     |    +--- com.google.android.gms:play-services-fido:20.1.0 (*)
+     |    +--- com.google.android.libraries.identity.googleid:googleid:1.1.0
+     |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.0 -> 2.1.10 (*)
+     |    |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.10 (*)
+     |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.10 (*)
+     |    \--- androidx.credentials:credentials:1.2.0 (c)
+     +--- com.google.dagger:dagger:2.55 (*)
+     \--- com.google.dagger:dagger-android-support:2.55
+          +--- com.google.dagger:dagger:2.55 (*)
+          +--- com.google.dagger:dagger-android:2.55
+          |    +--- com.google.dagger:dagger:2.55 (*)
+          |    +--- com.google.dagger:dagger-lint-aar:2.55
+          |    +--- androidx.annotation:annotation:1.3.0 -> 1.8.1 (*)
+          |    \--- javax.inject:javax.inject:1
+          +--- com.google.dagger:dagger-lint-aar:2.55
+          +--- androidx.activity:activity:1.5.1 -> 1.8.2 (*)
+          +--- androidx.annotation:annotation:1.3.0 -> 1.8.1 (*)
+          +--- androidx.appcompat:appcompat:1.3.1 -> 1.6.1 (*)
+          +--- androidx.fragment:fragment:1.5.1 -> 1.8.5 (*)
+          +--- androidx.lifecycle:lifecycle-common:2.5.1 -> 2.8.7 (*)
+          +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 -> 2.8.7 (*)
+          +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 -> 2.8.7 (*)
+          \--- javax.inject:javax.inject:1

Build environment changes

The following changes in the build classpath were detected:

list
New Dependencies
androidx.room:androidx.room.gradle.plugin:2.6.1
androidx.room:room-gradle-plugin:2.6.1
org.jetbrains.kotlin.kapt:org.jetbrains.kotlin.kapt.gradle.plugin:2.1.10
tree
++--- org.jetbrains.kotlin.kapt:org.jetbrains.kotlin.kapt.gradle.plugin:2.1.10
+|    \--- org.jetbrains.kotlin:kotlin-gradle-plugin:2.1.10 (*)
+\--- androidx.room:androidx.room.gradle.plugin:2.6.1
+     \--- androidx.room:room-gradle-plugin:2.6.1
+          \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.21 (*)

@wpmobilebot
Copy link
Collaborator

wpmobilebot commented Jan 14, 2025

📲 You can test the changes from this Pull Request in WooCommerce-Wear Android by scanning the QR code below to install the corresponding build.
App Name WooCommerce-Wear Android
Platform⌚️ Wear OS
FlavorJalapeno
Build TypeDebug
Commit5195fd8
Direct Downloadwoocommerce-wear-prototype-build-pr13304-5195fd8.apk

@wpmobilebot
Copy link
Collaborator

wpmobilebot commented Jan 14, 2025

📲 You can test the changes from this Pull Request in WooCommerce Android by scanning the QR code below to install the corresponding build.

App Name WooCommerce Android
Platform📱 Mobile
FlavorJalapeno
Build TypeDebug
Commit5195fd8
Direct Downloadwoocommerce-prototype-build-pr13304-5195fd8.apk

Copy link

@github-advanced-security github-advanced-security bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Android Lint found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

@wzieba wzieba mentioned this pull request Jan 14, 2025
4 tasks
@wzieba wzieba force-pushed the login_with_history branch from df275bc to a17b932 Compare January 14, 2025 17:15
@wzieba wzieba force-pushed the adjust_fluxc_login_vendor branch from 54707c5 to 11253d1 Compare January 14, 2025 17:15
@wzieba wzieba force-pushed the login_with_history branch 9 times, most recently from bd9aece to bb71676 Compare January 15, 2025 15:59
@wzieba wzieba force-pushed the adjust_fluxc_login_vendor branch from 11253d1 to 0cb655c Compare January 15, 2025 16:34
@wzieba wzieba force-pushed the login_with_history branch from bb71676 to 565d952 Compare January 17, 2025 10:49
@wzieba wzieba force-pushed the adjust_fluxc_login_vendor branch from 0cb655c to 2f75caf Compare January 17, 2025 11:10
@wzieba wzieba force-pushed the login_with_history branch from 565d952 to 4048993 Compare January 22, 2025 12:24
@wzieba wzieba force-pushed the adjust_fluxc_login_vendor branch from 7b5ebd2 to 5d08958 Compare January 22, 2025 12:32
@wzieba wzieba force-pushed the login_with_history branch from 4048993 to db27b1d Compare January 22, 2025 12:36
@wzieba wzieba force-pushed the adjust_fluxc_login_vendor branch from 5d08958 to eaeaacf Compare January 22, 2025 12:39
@@ -14,15 +14,19 @@
androidx-constraintlayout-main = '2.1.4'
androidx-core-main = '1.13.1'
androidx-core-splashscreen = '1.0.1'
androidx-credentials = '1.2.0'

Check warning

Code scanning / Android Lint

Obsolete Gradle Dependency Warning

A newer version of androidx.credentials:credentials than 1.2.0 is available: 1.3.0
@@ -14,15 +14,19 @@
androidx-constraintlayout-main = '2.1.4'
androidx-core-main = '1.13.1'
androidx-core-splashscreen = '1.0.1'
androidx-credentials = '1.2.0'

Check warning

Code scanning / Android Lint

Obsolete Gradle Dependency Warning

A newer version of androidx.credentials:credentials than 1.2.0 is available: 1.3.0
androidx-fragment = '1.8.5'
androidx-hilt = '1.2.0'
androidx-lifecycle = '2.8.7'
androidx-navigation = '2.7.7'
androidx-paging-runtime = "2.1.2"

Check warning

Code scanning / Android Lint

Obsolete Gradle Dependency Warning

A newer version of androidx.paging:paging-runtime than 2.1.2 is available: 3.3.6
facebook-flipper = '0.176.1'
facebook-shimmer = '0.5.0'
facebook-soloader = '0.10.4'
fastlane-screengrab = '2.1.1'
fladle = '0.17.5'
glassfish-javax-annotation = "10.0-b28"
google-autoService = "1.0-rc4"

Check warning

Code scanning / Android Lint

Obsolete Gradle Dependency Warning

A newer version of com.google.auto.service:auto-service than 1.0-rc4 is available: 1.0-rc6
stripe-terminal = '3.7.1'
tinder-statemachine = '0.2.0'
volley = "1.1.1"

Check warning

Code scanning / Android Lint

Obsolete Gradle Dependency Warning

A newer version of com.android.volley:volley than 1.1.1 is available: 1.2.1
@@ -121,8 +132,11 @@
androidx-constraintlayout-main = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "androidx-constraintlayout-main" }
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "androidx-core-main" }
androidx-core-splashscreen = { group = "androidx.core", name = "core-splashscreen", version.ref = "androidx-core-splashscreen" }
androidx-credentials-main = { module = "androidx.credentials:credentials", version.ref = "androidx-credentials" }

Check warning

Code scanning / Android Lint

credentials-play-services-auth is Required Warning

In Android 13 or lower, credentials-play-services-auth is required when using androidx.credentials:credentials
@wzieba wzieba force-pushed the adjust_fluxc_login_vendor branch from cc2d648 to ffd798b Compare January 22, 2025 15:17
@wzieba
Copy link
Contributor Author

wzieba commented Jan 22, 2025

@ParaskP7 this PR is ready for the first round of reviews. The chain of branches is following:

trunk -> fluxc_with_history -> login_with_history -> adjust_fluxc_login_vendor

*_history branches are result of git filter-repo - I'll prepare PRs for them later, but they don't have to be really reviewed as it was with WPAndroid.


I'm working right now on running benchmarks to make sure that we don't experience any performance regression with incremental builds. After this, and syncing with Woo Android team, this work will be ready to be merged.

@wzieba wzieba requested a review from ParaskP7 January 22, 2025 17:08
@wzieba wzieba added type: enhancement A request for an enhancement. category: architecture Related to architecture such as the database, FluxC, Networking, Core Data, etc. labels Jan 22, 2025
@wzieba wzieba force-pushed the adjust_fluxc_login_vendor branch from 923ec9c to 5c14f8c Compare February 3, 2025 11:47
It was removed on trunk, this is post-rebase fix
Another post-rebase fix
This is now a compilation crashing error so the FluxC code has to be adjusted
@codecov-commenter
Copy link

codecov-commenter commented Feb 3, 2025

Codecov Report

Attention: Patch coverage is 12.50000% with 21 lines in your changes missing coverage. Please review.

Project coverage is 37.87%. Comparing base (a456713) to head (5195fd8).
Report is 29 commits behind head on trunk.

Files with missing lines Patch % Lines
...press/android/fluxc/persistence/ProductSqlUtils.kt 0.00% 4 Missing ⚠️
...ava/org/wordpress/android/fluxc/store/SiteStore.kt 0.00% 3 Missing ⚠️
...wpcom/wc/shippinglabels/ShippingLabelRestClient.kt 0.00% 2 Missing ⚠️
.../org/wordpress/android/fluxc/store/WCStatsStore.kt 0.00% 2 Missing ⚠️
...wordpress/android/fluxc/store/NotificationStore.kt 0.00% 2 Missing ⚠️
...ress/android/fluxc/model/WCNewVisitorStatsModel.kt 0.00% 1 Missing ⚠️
...g/wordpress/android/fluxc/model/WCSettingsModel.kt 0.00% 0 Missing and 1 partial ⚠️
...k/rest/wpcom/wc/orderstats/OrderStatsRestClient.kt 0.00% 1 Missing ⚠️
...ss/android/fluxc/persistence/WCSettingsSqlUtils.kt 0.00% 1 Missing ⚠️
.../org/wordpress/android/fluxc/store/WCOrderStore.kt 0.00% 1 Missing ⚠️
... and 3 more
Additional details and impacted files
@@             Coverage Diff              @@
##              trunk   #13304      +/-   ##
============================================
- Coverage     41.37%   37.87%   -3.51%     
- Complexity     6580     8947    +2367     
============================================
  Files          1330     2049     +719     
  Lines         77897   112026   +34129     
  Branches      10731    14170    +3439     
============================================
+ Hits          32232    42426   +10194     
- Misses        42800    65721   +22921     
- Partials       2865     3879    +1014     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@wzieba
Copy link
Contributor Author

wzieba commented Feb 3, 2025

@ParaskP7 since your last review I've committed following:

And rebased this branch over new branches of FluxC and Login vendors to match the current versions of this libraries that Woo is using.

I think this PR is getting close to be merged! Do you have any last words? 😄

@ParaskP7
Copy link
Contributor

ParaskP7 commented Feb 3, 2025

813143e

Thanks for the fix! 👍

a698386

👍

4793192

I reviewed this commit and everything LGTM! 👍

And rebased this branch over new branches of FluxC and Login vendors to match the current versions of this libraries that Woo is using.

Awesome! 🚀

I think this PR is getting close to be merged! Do you have any last words? 😄

Let's do it @wzieba , we'll then have a whole week (4 days, ok, okay) to fix any problems that might arise till next release (21.7 due by February 7).

@ParaskP7
Copy link
Contributor

ParaskP7 commented Feb 3, 2025

Btw @wzieba , on the fluxc side, are we sure we brought in this #3128 change too? 🤔

FYI: On the login side, everything looks okay.

@wzieba
Copy link
Contributor Author

wzieba commented Feb 3, 2025

Btw @wzieba , on the fluxc side, are we sure we brought in this #3128 change too? 🤔

Good point! No, the PR is not part of the migration. And the reason is that this PR you linked is not part of 2.103.0 that WooCommerce Android is using right now.

I'd interpret the goal of this PR as strictly move a specific FluxC that WooCommerce is using at this very moment to not introduce yet another variable.

I think we'll need to backport this change after the merge. WDYT?

@ParaskP7
Copy link
Contributor

ParaskP7 commented Feb 3, 2025

Good point! No, the PR is not part of the migration. And the reason is that this PR you linked is not part of 2.103.0 that WooCommerce Android is using right now.

👍

I'd interpret the goal of this PR as strictly move a specific FluxC that WooCommerce is using at this very moment to not introduce yet another variable.

👍

I think we'll need to backport this change after the merge. WDYT?

If we are fine backporting this change after the merge @wzieba (cherry-picking the change and all), then I am 👍 will it as well.

Base automatically changed from login_with_history to trunk February 3, 2025 15:05
@wzieba wzieba merged commit bc699f8 into trunk Feb 3, 2025
15 checks passed
@wzieba wzieba deleted the adjust_fluxc_login_vendor branch February 3, 2025 15:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: architecture Related to architecture such as the database, FluxC, Networking, Core Data, etc. type: enhancement A request for an enhancement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants